I. Field of the Invention
This invention relates generally to numerical control of machines. In particular, this invention relates to control of motion of machine members to effect relative motion of a workpoint along a predetermined path.
II. Description of the Prior Art
Of particular interest herein is coordinated motion of plural members of a machine such as machine 10 shown in FIG. 1. Members 12, 14, and 16, each movable along a linear axis, such as the X, Y, and Z axes shown, may be controlled such that workpoint 18 is caused to move along a path in the course of performing work on workpiece WPC. Linear paths are typically defined by path end points represented by sets of coordinates of the orthogonal X, Y, and Z axes. Circular paths are defined by a combination of path end points and circle center data.
The machine is controlled by a cycle control which operates as a conventional programmable controller to execute control programs relating machine push buttons, lights, limit switches, tool changes and the like with the operational cycle of the machine. The cycle control transfers workpiece program instructions, which include blocks of instructions for defining member position coordinates, feed rates, spindle speeds and the like, to a block processor. The block processor decodes the workpiece instructions into data and distributes the data to other processors in the machine for control of the machine. Some of the decoded data is distributed to a path generation processor that generates coordinate axis position commands for each of the machine members oriented in the X, Y, and Z axis at predefined machine position update intervals. These coordinate axis position commands are transferred to a servomechanism controller which provide closed loop control of an actuator, such as a motor, for each of the machine members.
The closed loop control of the machine member actuators includes current signals provided to the machine member actuators. The current signals are generated by power switches in a power block which are operated by control signals from the servomechanism controller. The current signals to the machine member actuators cause the machine member controlled by the actuator to move in its respective axis to a position and at a rate corresponding to the control signals from the servomechanism controller. Transducers associated with each machine member provide signals indicative of the actual position of the machine member and these signals are used by the servomechanism controller as error signals to adjust the control signals to the power switches.
To generate the control signals to the power switches, the digital signal processor within the servomechanism controller uses a predetermined number of successive coordinate axis position commands to generate sub-span or intermediate position commands at an interval rate corresponding to a servomechanism loop closure rate. The servomechanism loop closure rate is less than the machine member position update rate so there are a predetermined number of sub-span position commands generated between coordinate axis position commands. The coordinate axis position commands and sub-span position commands are used to generate the control signals to the power switches.
The sub-span position commands are generated in two different manners. One manner of generating sub-span commands is to generate them linearly, that is, the sub-span position commands are interpolated according to a linear function joining successive coordinate axis position commands. However, linear function sub-span interpolation can result in path errors when the required movement between successive coordinate axis position commands is defined by a non-linear function. To reduce the path errors caused by sub-span position commands interpolated linearly, a non-linear function for interpolation of sub-span position commands was developed. This method of sub-span position command interpolation is described in the co-pending U.S. patent application, Ser. No. 07/563,366, filed Aug. 6, 1990, now U.S. Pat. No. 5,229,698 entitled "Method and Apparatus For Sub-Span Interpolation" and is hereby expressly incorporated by reference. Described in U.S. Pat. No. 5,229,698, the method for generating sub-span commands requires more processor resources, such as processor execution time and memory, than does the linear method of sub-span position command interpolation. To ease the requirements for processor time and memory resources necessary for the non-linear sub-span position command interpolation, a more processor resource efficient method of non-linear sub-span position command interpolation is needed.